Many different interface boards are available for use in computers. This is especially true of microcomputers where the user may purchase a variety of interface boards from many different manufacturers. For example, a typical computer system contains a keyboard interface, a video interface, a hard disk/floppy disk interface, and a printer interface that may all be from different manufacturers. Many system may have more than one of the same type of interface board. For example, a computer may contain several serial I/O ports for a modem, a mouse, a printer, or the like.
While microcomputers are able to operate all of these various interfaces, the boards must be properly installed for the entire system to work effectively. For proper installation, a typical interface board requires proper selection of a variety of parameters such as an I/O address, interrupt request (IRQ) line, and direct memory access (DMA) line. If these parameters are not properly selected for each interface board, there will be conflicts when using the data bus and control bus. These conflicts may cause erroneous results or can even cause the entire computer system to fail.
Some prior art system avoid this problem by assigning specific parameters to each interface slot in the computer. For example, a computer may have eight slots available for interface boards. The interface board itself does not contain address decoding circuitry; instead, the computer motherboard has address decoding for each of the particular slots such that each slot has a unique address. Thus, parameter selection is predetermined for each slot. If the computer requires additional information or parameters, the computer's software may query each interface board to determine what type of board is installed in each slot. Because the computer knows the addresses for each slot, there is no danger that an interface board will be inadvertently enabled while being queried by the computer. The computer can configure the software to properly support each of the interface boards installed in the addressable slots. Thus, slot addressability also solves the problem of inadvertently enabling an interface board.
While slot addressability is one solution to the problem of inadvertently enabling an interface board during the parameter selection and configuration process, some computer systems do not have slot addressability. The Industry Standard Architecture (ISA) bus, which is the most common microcomputer bus, does not have slot addressability. As shown in FIG. 1, the ISA bus contains an address bus 1, a data bus 2, a control bus 3, and a power bus 4. There is no slot addressability; instead, each interface board 5 contains its own address decoding circuit 6 as well as means for selecting other parameters. For example, a typical interface board may contain jumpers, DIP switches, or both, to select the address, the IRQ line and the DMA line. It is the user's responsibility to properly select these parameters so that a particular interface board will not interfere with other interface boards installed in the computer.
As a result, the user must become very knowledgeable about computer hardware simply to install an interface board. For a typical user, the installation of a single board into an existing system becomes an extraordinary effort that can be very discouraging. If the parameters for an interface board are not properly selected, the user may face intermittent errors or a complete system crash.
Therefore, it can be appreciated that there is a significant need for a system and method for automatically determining which boards are connected to a computer bus and automatically assigning parameter selections to ensure proper operation of all interfaces.